/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.ucase.casemain.service;

import com.icinfo.cloud.provider.punish.ucase.casemain.dto.*;
import com.icinfo.cloud.provider.punish.ucase.casemain.model.CasePartiesLegalInfo;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CasePartiesLegalInfoVo;
import com.icinfo.framework.common.web.Result;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述: 案件当事人法人详细信息-TRJ case_parties_legal_info 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年02月15日
 */
public interface ICasePartiesLegalInfoService extends BaseService {

    /**
     * 【V1.0.0】描述：保存案件当事人-法人信息
     *
     * @param saveDto {@link CasePartiesLegalInfoDto}
     * @return int 保存成功记录数
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    int saveCasePartiesLegalInfo(CasePartiesLegalInfoDto saveDto);

    /**
     * 【V1.0.0】描述：获取案件当事人-法人信息分页列表
     *
     * @param pageRequest {@link CasePartiesLegalInfoPageRequest}
     * @return {@link Result< List <CasePartiesLegalInfoVo>>} 案件当事人-法人信息分页列表
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    List<CasePartiesLegalInfoVo> getCasePartiesLegalInfoPageList(CasePartiesLegalInfoPageRequest pageRequest);

    /**
     * 【V1.0.0】描述：获取案件当事人-法人信息列表
     *
     * @param queryDto {@link CasePartiesLegalInfoQueryDto}
     * @return {@link List<CasePartiesLegalInfoVo>} 案件当事人-法人信息列表
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    List<CasePartiesLegalInfoVo> getCasePartiesLegalInfoList(CasePartiesLegalInfoQueryDto queryDto);

    /**
     * 【V1.0.0】描述：根据唯一标识查询案件当事人-法人信息
     *
     * @param id 唯一标识
     * @return {@link CasePartiesLegalInfoVo} 案件当事人-法人信息
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    CasePartiesLegalInfoVo getCasePartiesLegalInfo(String id);

    /**
     * 【V1.0.0】描述：删除案件当事人-法人信息
     *
     * @param id 主键id
     * @return {@link Result<String>} 删除结果
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    Result<String> removeCasePartiesLegalInfo(String id);


    /**
     * @Author: zhengqiang
     * @Date: 2022/5/12
     * @Description: 更新法定代表人证件信息
     * @param: updateDto
     * @return: com.icinfo.framework.common.web.Result<java.lang.String>
     **/
    Result<String> updateCasePartiesLegalInfo(CasePartiesLegalInfoUpdateDto updateDto);

    /**
     * 描述：获取缺失法人证件信息的法定代表人信息
     *
     * @param caseId 案件id
     * @return {@link List<CasePartiesLegalInfoVo>}
     * @author xiangyuyu
     * @date 2022-05-23 10:02
     */
    List<CasePartiesLegalInfoVo> getLegalInfoWhoLoseLegalCertInfo(String caseId);

    /**
     * 根据caseId获取有效的单位数据
     * @param caseId
     * @return
     */
    CasePartiesLegalInfo getInfoByCaseId(String caseId);

    /**
     * 案件当事人的法律信息dto列表
     *
     * @param caseId 用例id
     * @return {@link List<CasePartiesLegalInfoDto> }
     * @author shishengyao
     * @date 2023/03/24
     */
    List<CasePartiesLegalInfoDto> getCasePartiesLegalInfoDtoList(String caseId) ;

    /**
     * 保存各方法律信息调整
     *
     * @param saveDto 保存dto
     * @return int
     * @author shishengyao
     * @date 2023/03/25
     */
    String saveCasePartiesLegalInfoWithAdjust(CasePartyRecordAdjustLegalSaveDto saveDto);
}
